#pragma once

#include <memory>
#include <vector>
#include "Renderer/Buffer.h"

namespace Orange {
	class VertexArray
	{
	public:

		~VertexArray();


		virtual void bind() const = 0;
		virtual void ubind() const = 0;
		virtual void AddVertexBuffer(const Ref<VertexBuffer>& vertexBuffer) = 0;
		virtual void SetIndexBuffer(const Ref<IndexBuffer>& indexBuffer) = 0;

		virtual const std::vector<Ref<VertexBuffer>>& GetVertexBuffer() const = 0;
		virtual const Ref<IndexBuffer>& GetIndexBuffer() const = 0;
		static Ref<VertexArray> Create();
	};

}